package homework.day04;

import java.io.*;

/**
 * 将当前目录下的所有文件都复制一份，复制的文件命名为:原
 * 文件名_cp.后缀
 * 比如原文件为:test.dat
 * 复制后的文件为:test_cp.dat
 *
 * @author Xiloer
 */
public class Test02 {
    public static void main(String[] args) throws IOException {

        /**
         * 通过字符串下标和插入来构建新文件名
         */
        File dir = new File("D:\\IDEA\\test");
        File[] files = dir.listFiles();
        for (int i = 0; i < files.length; i++) {
            File file = files[i];
            if (file.isDirectory()) {//若果文件是一个文件夹，则跳过
                continue;
            }
            String name = file.getName();//获取文件名
            //System.out.println(name);
            int index = name.lastIndexOf(".");//.后缀的下标
            String nameStart = name.substring(0, index);//后缀前的字符串
            String nameEnd = name.substring(index);//后缀后的字符串
            FileInputStream fis = new FileInputStream("D:\\IDEA\\test\\" + name);
            //BufferedInputStream bis = new BufferedInputStream(fis);
            FileOutputStream fos = new FileOutputStream("D:\\IDEA\\test\\" + nameStart + "_cp" + nameEnd);
            //BufferedOutputStream bos = new BufferedOutputStream(fos);
            int len;
            while ((len = fis.read()) != -1) {
                fos.write(len);
            }
            fis.close();
            fos.close();
        }


        /**
         * 通过正则来构造新文件名
         */
/*		File dir = new File("D:\\IDEA\\test");
		File[] files = dir.listFiles();
		for (int i = 0; i < files.length; i++) {
			File file = files[i];
			String name = file.getName();//获取文件名
			String newName = name.replaceAll("\\.","_cp\\.");
			FileInputStream fis = new FileInputStream("D:\\IDEA\\test\\"+name);
			//BufferedInputStream bis = new BufferedInputStream(fis);
			FileOutputStream fos = new FileOutputStream("D:\\IDEA\\test\\"+newName);
			//BufferedOutputStream bos = new BufferedOutputStream(fos);
			int len;
			while((len =fis.read()) != -1){
				fos.write(len);
			}
			fis.close();
			fos.close();
		}*/

    }

    public static void copy(File file) {
        if (file.isDirectory()) {

        }
    }
}


/**
 * 思路:
 * 分为几部分考虑.
 * 第一个是要获取到当前目录中的所有文件(思考哪个API可以解决)
 * 第二个是获取到的每一个文件都要复制(复制用什么API)
 * 第三个是复制的文件名，如何重新组建xxx_cp.xxx的名字?
 * 这里要将原文件名拆开后想办法拼接_cp.
 */


